package clases.general;

import CapaDatos.DataSource;
import CapaDatos.Sql;
import clases.incio.Paginacion;

/**
 *
 * @author Jose Daniel
 */
public class Persona extends Ciudad {

    private String cedulaRuc;
    private String nombre;
    private String apellido;
    private String telefono;
    private String direccion;
    private String ciudad;
    public Paginacion objPaginacion;
    private final DataSource dt;
    private String sql;

    public Persona() {
        dt = new DataSource();
        objPaginacion = new Paginacion();
    }

    public String getCiudad() {
        return ciudad;
    }

    public void setCiudad(String ciudad) {
        this.ciudad = ciudad;
    }

    public String getCedulaRuc() {
        return cedulaRuc;
    }

    public void setCedulaRuc(String cedulaRuc) {
        this.cedulaRuc = cedulaRuc;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getApellido() {
        return apellido;
    }

    public void setApellido(String apellido) {
        this.apellido = apellido;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    public boolean guardarPersona() {
        sql = "INSERT INTO PERSONA VALUES('" + cedulaRuc + "', '" + nombre + "', '" + apellido + "',"
                + " '" + telefono + "', '" + direccion + "', " + getIdciudad(this.ciudad) + ")";
        return Sql.insertar(sql);
    }

    public boolean actualizarPersona() {
        sql = "UPDATE PERSONA SET CEDULARUC='" + this.cedulaRuc + "', NOMBRE='" + this.nombre + "', "
                + "APELLIDO='" + this.apellido + "', TELEFONO='" + this.telefono + "', "
                + "DIRECCION='" + this.direccion + "', IDCIUDAD=" + getIdciudad(this.ciudad) + " "
                + "WHERE CEDULARUC='" + this.getCedulaRuc() + "'";
        return Sql.actualizar(sql);
    }

    public boolean eliminarPersona() {
        sql = "DELETE FROM PERSONA WHERE CEDULARUC='" + this.cedulaRuc + "'";
        return Sql.eliminar(sql);
    }

    private int getMax() {
        return Sql.getMax("IDPERSONA", "PERSONA", true);
    }

    public int getId(String cedulaRuc) {
        Sql.getConsulta("SELECT IDPERSONA FROM PERSONA WHERE(cedularuc='" + cedulaRuc + "')", dt);
        dt.next();
        return dt.getInt(1);

    }

    public void getPersona() {
        Sql.getConsulta("SELECT CEDULARUC,NOMBRE,APELLIDO,TELEFONO,DIRECCION FROM PERSONA WHERE(CEDULARUC='" + cedulaRuc + "')", dt);
        while (dt.next()) {
            this.setCedulaRuc(dt.getString(1));
            this.setNombre(dt.getString(2));
            this.setApellido(dt.getString(3));
            this.setTelefono(dt.getString(4));
            this.setDireccion(dt.getString(5));
        }
    }

    public boolean existe() {
        return Sql.isExiste("SELECT CEDULARUC FROM PERSONA WHERE(CEDULARUC='" + cedulaRuc + "')");
    }

    public void llenardatosPersona(String cedula) {
        sql = "SELECT * FROM PERSONA WHERE CEDULARUC='" + cedula + "'";
        Sql.getConsulta(sql, dt);
        while (dt.next()) {
            this.cedulaRuc = dt.getString(1);
            this.nombre = dt.getString(2);
            this.apellido = dt.getString(3);
            this.telefono = dt.getString(4);
            this.direccion = dt.getString(5);
            this.ciudad = this.SacarCiudad(dt.getInt(6));
        }
    }

}
